﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace B.S.DataBase.Production.Domain
{
    /// <summary>
    /// 生产计划明细项
    /// </summary>
    public class ProductionDetail
    {
        /// <summary>
        /// 自动生成序号（UI显示用）
        /// </summary>
        [Key]
        public int Sequence { get; set; }                // 1,2,3...（自增）

        /// <summary>
        /// 产品标准名称
        /// </summary>
        public string ProductName { get; set; }          // 示例："液压机"

        /// <summary>
        /// 物料编码（ERP系统编码）
        /// </summary>
        public string MaterialCode { get; set; }         // 如："MATERIAL-010042"

        /// <summary>
        /// 规格参数组合
        /// </summary>
        public string Specification { get; set; }        // 示例："Y32-100T"

        /// <summary>
        /// 计量单位
        /// </summary>
        public string Unit { get; set; }                 // 如："台"、"套"、"吨"

        /// <summary>
        /// 计划生产数量（必填校验）
        /// </summary>
        public decimal Quantity { get; set; }            // 数值型，支持小数

        /// <summary>
        /// 物料清单明细（JSON格式存储）
        /// </summary>
        public string BillOfMaterials { get; set; }      // 示例："[{"物料编码":"M001","数量":5}]"

        /// <summary>
        /// 计划开始时间（必填）
        /// </summary>
        public DateTime StartDate { get; set; }          // 如：2025-04-01

        /// <summary>
        /// 计划完成时间（必填且>开始时间）
        /// </summary>
        public DateTime EndDate { get; set; }            // 如：2025-04-15

        /// <summary>
        /// 要求交货日期
        /// </summary>
        public DateTime DeliveryDate { get; set; }       // 如：2025-04-20

        /// <summary>
        /// 行项目备注
        /// </summary>
        public string Remark { get; set; }
    }
}
